﻿using HandyControl.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;

namespace ZoneLineNew.Services.Message
{
    public interface IMessageService
    {
        #region MessageBox
        /// <summary>
        /// 弹窗提示
        /// </summary>
        MessageBoxResult Show(MessageBoxInfo info);

        /// <summary>
        /// 弹窗提示
        /// </summary>
        MessageBoxResult Show(string messageBoxText, string caption = "温馨提示", MessageBoxButton button = MessageBoxButton.OK, MessageBoxImage icon = MessageBoxImage.None, MessageBoxResult defaultResult = MessageBoxResult.None);

        /// <summary>
        /// 弹窗提示
        /// </summary>
        MessageBoxResult Show(System.Windows.Window owner, string messageBoxText, string caption = "温馨提示", MessageBoxButton button = MessageBoxButton.OK, MessageBoxImage icon = MessageBoxImage.None, MessageBoxResult defaultResult = MessageBoxResult.None);

        /// <summary>
        /// 成功
        /// </summary>
        MessageBoxResult Success(string messageBoxText, string caption = "温馨提示");

        /// <summary>
        /// 消息
        /// </summary>
        MessageBoxResult Info(string messageBoxText, string caption = "温馨提示");

        /// <summary>
        /// 警告
        /// </summary>
        MessageBoxResult Warning(string messageBoxText, string caption = "温馨提示");

        /// <summary>
        /// 错误
        /// </summary>
        MessageBoxResult Error(string messageBoxText, string caption = "温馨提示");

        /// <summary>
        /// 询问
        /// </summary>
        MessageBoxResult Ask(string messageBoxText, string caption = "温馨提示");
        #endregion

        #region Grow

        /// <summary>
        /// 消息
        /// </summary>
        void GrowlInfo(string message, string token = "", bool isShowDateTime = false);

        /// <summary>
        /// 成功
        /// </summary>
        void GrowSuccess(string message, string token = "", bool isShowDateTime = false);

        /// <summary>
        /// 警告
        /// </summary>
        void GrowWarning(string message, string token = "", bool isShowDateTime = false);

        /// <summary>
        /// 错误
        /// </summary>
        void GrowError(string message, string token = "", bool isShowDateTime = false);

        /// <summary>
        /// 询问
        /// </summary>
        void GrowAsk(string message, Func<bool, bool> actionBeforeClose, string token = "", bool isShowDateTime = false);
        #endregion

        #region GrowGlobal

        /// <summary>
        /// 消息
        /// </summary>
        void GrowlInfoGlobal(string message);

        /// <summary>
        /// 成功
        /// </summary>
        void GrowSuccessGlobal(string message);

        /// <summary>
        /// 警告
        /// </summary>
        void GrowWarningGlobal(string message);

        /// <summary>
        /// 错误
        /// </summary>
        void GrowErrorGlobal(string message);

        /// <summary>
        /// 询问
        /// </summary>
        void GrowAskGlobal(string message, Func<bool, bool> actionBeforeClose);

        #endregion
    }
}
